package cn.maszy.service.impl.systemsetting;

import java.util.Date;
import java.util.List;
import java.util.UUID;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import cn.maszy.common.Pager;
import cn.maszy.common.SessionFactory;
import cn.maszy.dao.systemsetting.B_T_Ufp_MaterialCategoryMapper;
import cn.maszy.dao.systemsetting.B_T_Ufp_MaterialMapper;
import cn.maszy.model.systemsetting.B_T_Ufp_MaterialCategory;
import cn.maszy.model.systemsetting.B_T_Ufp_MaterialCategoryExample;
import cn.maszy.model.systemsetting.B_T_Ufp_Material;
import cn.maszy.model.systemsetting.B_T_Ufp_MaterialExample;
import cn.maszy.model.systemsetting.B_T_Ufp_MaterialCategoryExample.Criteria;
import cn.maszy.service.systemsetting.B_T_Ufp_MaterialCategoryService;
@Service
public class B_T_Ufp_MaterialCategoryServiceImpl implements B_T_Ufp_MaterialCategoryService {
	@Autowired
	private B_T_Ufp_MaterialCategoryMapper b_T_Ufp_MaterialCategoryMapper;
	@Autowired
	private B_T_Ufp_MaterialMapper b_T_Ufp_MaterialMapper;
	/* (non-Javadoc)
	 * @see cn.maszy.service.investment.B_T_Ufp_AdminService#update(cn.maszy.model.investment.B_T_Ufp_MaterialCategory, cn.maszy.model.investment.B_T_Ufp_AdminExample)
	 */
	public int update(B_T_Ufp_MaterialCategory b_T_Ufp_MaterialCategory) {
		// TODO Auto-generated method stub
		 if(b_T_Ufp_MaterialCategory.getUuid()==null||"".equals(b_T_Ufp_MaterialCategory.getUuid())){
			 b_T_Ufp_MaterialCategory.setUuid(UUID.randomUUID().toString());
			 if(b_T_Ufp_MaterialCategory.getPid()==null||"".equals(b_T_Ufp_MaterialCategory.getPid()))
			 {
				 b_T_Ufp_MaterialCategory.setPid("0");
			 }else
			 {
				 b_T_Ufp_MaterialCategory.setPid(b_T_Ufp_MaterialCategory.getPid());
			 }
			 b_T_Ufp_MaterialCategory.setIsDelete(0);
			 b_T_Ufp_MaterialCategory.setCreateTime(new Date());
			 b_T_Ufp_MaterialCategory.setCreateUser(SessionFactory.getSessionUserRealNam());
			 return b_T_Ufp_MaterialCategoryMapper.insert(b_T_Ufp_MaterialCategory);
		 }else{
			 //修改字表的数据
			 String name = b_T_Ufp_MaterialCategory.getCategoryName();
			 B_T_Ufp_MaterialExample example=new B_T_Ufp_MaterialExample();
			 example.createCriteria().andCategoryUuidEqualTo(b_T_Ufp_MaterialCategory.getUuid());
			 B_T_Ufp_Material record =new B_T_Ufp_Material();
			 record.setCategoryName(name);
			 record.setCategoryStatus(b_T_Ufp_MaterialCategory.getCategoryStatus());
			 b_T_Ufp_MaterialMapper.updateByExampleSelective(record, example);
			 
			 b_T_Ufp_MaterialCategory.setUpdateTime(new Date());
			 b_T_Ufp_MaterialCategory.setUpdateUser(SessionFactory.getSessionUserRealNam());
			 return b_T_Ufp_MaterialCategoryMapper.updateByPrimaryKeySelective(b_T_Ufp_MaterialCategory);
		 }
	}

	/* (non-Javadoc)
	 * @see cn.maszy.service.investment.B_T_Ufp_AdminService#selectOne(java.lang.String)
	 */
	public B_T_Ufp_MaterialCategory selectOne(String uuid) {
		// TODO Auto-generated method stub
		B_T_Ufp_MaterialCategory record=b_T_Ufp_MaterialCategoryMapper.selectByPrimaryKey(uuid);
		return record;
	}

	/* (non-Javadoc)
	 * @see cn.maszy.service.investment.B_T_Ufp_AdminService#delete(java.lang.String)
	 */
	public int delete(String checkIds) {
		// TODO Auto-generated method stub
		for (String id : checkIds.split(", ")) {
			//删除前的判断
			B_T_Ufp_MaterialCategoryExample example1=new B_T_Ufp_MaterialCategoryExample();
			Criteria criteria = example1.createCriteria();
			criteria.andPidEqualTo(id);
			example1.or(criteria);
			// 取得总的记录条数
			List<B_T_Ufp_MaterialCategory>  list=b_T_Ufp_MaterialCategoryMapper.selectByExample(example1);
			if(list.size()>0)
			{
				return 0;
			}
			//删除前的判断
			B_T_Ufp_MaterialExample example2=new B_T_Ufp_MaterialExample();
			cn.maszy.model.systemsetting.B_T_Ufp_MaterialExample.Criteria criteria2 = example2.createCriteria();
			criteria2.andCategoryUuidEqualTo(id);
			example2.or(criteria2);
			// 取得总的记录条数
			List<B_T_Ufp_Material>  list2=b_T_Ufp_MaterialMapper.selectByExample(example2);
			if(list2.size()>0)
			{
				return 0;
			}
			//删除
			b_T_Ufp_MaterialCategoryMapper.deleteByPrimaryKey(id);
			B_T_Ufp_MaterialExample example=new B_T_Ufp_MaterialExample();
			example.createCriteria().andCategoryUuidEqualTo(id);
			b_T_Ufp_MaterialMapper.deleteByExample(example);
		}
		return 1;
	}

	/* (non-Javadoc)
	 * @see cn.maszy.service.investment.B_T_Ufp_AdminService#count(cn.maszy.model.investment.B_T_Ufp_AdminExample)
	 */
	public int count(B_T_Ufp_MaterialCategoryExample example,B_T_Ufp_MaterialCategoryMapper b_T_Ufp_AdminMapper) {
		// TODO Auto-generated method stub
		return b_T_Ufp_AdminMapper.countByExample(example);
	}

	/* (non-Javadoc)
	 * @see cn.maszy.service.investment.B_T_Ufp_AdminService#selectList(cn.maszy.model.investment.B_T_Ufp_MaterialCategory)
	 */
	public Pager<B_T_Ufp_MaterialCategory> selectList(B_T_Ufp_MaterialCategory b_T_Ufp_MaterialCategory,Pager<B_T_Ufp_MaterialCategory> pager) {
		// TODO Auto-generated method stub
		// 添加查询条件
		B_T_Ufp_MaterialCategoryExample example=new B_T_Ufp_MaterialCategoryExample();
		Criteria criteria = example.createCriteria();
		if(b_T_Ufp_MaterialCategory!=null){
			if(b_T_Ufp_MaterialCategory.getCategoryStatus() !=null&&!"".equals(b_T_Ufp_MaterialCategory.getCategoryStatus())){
				criteria.andCategoryStatusEqualTo(b_T_Ufp_MaterialCategory.getCategoryStatus());
			}
//			if(b_T_Ufp_MaterialCategory.getLoginName()!=null&&!"".equals(b_T_Ufp_MaterialCategory.getLoginName())){
//				criteria.andLoginNameLike("%"+b_T_Ufp_MaterialCategory.getLoginName()+"%");
//			}
//			if(b_T_Ufp_MaterialCategory.getRealName()!=null&&!"".equals(b_T_Ufp_MaterialCategory.getRealName())){
//				criteria.andRealNameLike("%"+b_T_Ufp_MaterialCategory.getRealName()+"%");
//			}
		}else{
			criteria.andUuidIsNotNull();
		}
		//查找带回时不查属于大类的数据
		criteria.andPidNotEqualTo("0");
		example.or(criteria);
//		int totalCount=new B_T_Ufp_MaterialCategoryServiceImpl().count(example,b_T_Ufp_MaterialCategoryMapper);
//		pager.setTotalRecords(totalCount);
//		example.setLimitStart(pager.getStartRecord());
//		example.setLimitEnd(pager.getPageSize());
		example.setOrderByClause(pager.getOrderField()+" "+pager.getOrderDirection());
		// 取得总的记录条数
		List<B_T_Ufp_MaterialCategory>  list=b_T_Ufp_MaterialCategoryMapper.selectByExample(example);
		pager.setPageRecords(list);
		return pager;
	}
	public List<B_T_Ufp_MaterialCategory> select(B_T_Ufp_MaterialCategory b_T_Ufp_MaterialCategory)
	{
		B_T_Ufp_MaterialCategoryExample example=new B_T_Ufp_MaterialCategoryExample();
		Criteria criteria = example.createCriteria();
		if(b_T_Ufp_MaterialCategory!=null){
			if(b_T_Ufp_MaterialCategory.getCategoryStatus() !=null&&!"".equals(b_T_Ufp_MaterialCategory.getCategoryStatus())){
				criteria.andCategoryStatusEqualTo(b_T_Ufp_MaterialCategory.getCategoryStatus());
			}
			if(b_T_Ufp_MaterialCategory.getPid() !=null&&!"".equals(b_T_Ufp_MaterialCategory.getPid())){
				criteria.andPidNotEqualTo(b_T_Ufp_MaterialCategory.getPid());
			}
			if(b_T_Ufp_MaterialCategory.getCategoryName() !=null&&!"".equals(b_T_Ufp_MaterialCategory.getCategoryName())){
				criteria.andCategoryNameEqualTo(b_T_Ufp_MaterialCategory.getCategoryName());
			}
		}else
		{
			criteria.andUuidIsNotNull();
		}
		example.or(criteria);
		example.setOrderByClause("create_time");
		// 取得总的记录条数
		List<B_T_Ufp_MaterialCategory>  list=b_T_Ufp_MaterialCategoryMapper.selectByExample(example);
		return list;
	}
	//用于页面下拉列表
	public List<B_T_Ufp_MaterialCategory> selectchange(B_T_Ufp_MaterialCategory b_T_Ufp_MaterialCategory)
	{
		B_T_Ufp_MaterialCategoryExample example=new B_T_Ufp_MaterialCategoryExample();
		Criteria criteria = example.createCriteria();
		if(b_T_Ufp_MaterialCategory!=null){
			if(b_T_Ufp_MaterialCategory.getCategoryStatus() !=null&&!"".equals(b_T_Ufp_MaterialCategory.getCategoryStatus())){
				criteria.andCategoryStatusEqualTo(b_T_Ufp_MaterialCategory.getCategoryStatus());
			}
		}else
		{
			criteria.andUuidIsNotNull();
		}
		criteria.andPidEqualTo("0");
		example.or(criteria);
		// 取得总的记录条数
		List<B_T_Ufp_MaterialCategory>  list=b_T_Ufp_MaterialCategoryMapper.selectByExample(example);
//		B_T_Ufp_MaterialCategory bb = new B_T_Ufp_MaterialCategory();
//		bb.setUuid("0");
//		bb.setCategoryName("设为大类");
//		list.add(bb);
		return list;
	}
}
